package com.ruoyi.fileMaintenance.service;

import java.util.List;
import com.ruoyi.fileMaintenance.domain.TCourse;
import com.ruoyi.fileMaintenance.domain.TCourseBinding;
import com.ruoyi.fileMaintenance.domain.TCourseLearning;
import com.ruoyi.fileMaintenance.domain.dto.TCourseDto;

/**
 * 课程Service接口
 * 
 * @author ruoyi
 * @date 2024-03-27
 */
public interface ITCourseService 
{
    /**
     * 查询课程
     * 
     * @param id 课程主键
     * @return 课程
     */
    public TCourse selectTCourseById(Long id);

    /**
     * 查询课程列表
     * 
     * @param tCourse 课程
     * @return 课程集合
     */
    public List<TCourse> selectTCourseList(TCourse tCourse);

    /**
     * app查询课程列表
     *
     * @return 课程集合
     */
    public List<TCourseDto> selectTCourseList2(TCourseDto tCourseDto);

    /**
     * 查询用户绑定的课程
     *
     * @return 课程集合
     */
    public TCourseBinding selectCourseBinding();

    /**
     * 新增课程
     * 
     * @param tCourse 课程
     * @return 结果
     */
    public int insertTCourse(TCourse tCourse);

    /**
     * 修改课程
     * 
     * @param tCourse 课程
     * @return 结果
     */
    public int updateTCourse(TCourse tCourse);

    /**
     * 批量删除课程
     * 
     * @param ids 需要删除的课程主键集合
     * @return 结果
     */
    public int deleteTCourseByIds(Long[] ids);

    /**
     *  课程绑定
     * @author
     * @param courseId 课程id
     * @return 结果
     */
    public int insertCourseBinding(Long courseId);


    /**
     *  课程重新学习
     * @author
     * @param courseId 课程id
     * @return 结果
     */
    public int courseRelearn(Long courseId);
}
